"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import sys

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions
from builtins import (
    int,
    str,
    type,
)
from collections.abc import (
    Iterable,
)
from google.protobuf.descriptor import (
    Descriptor,
    EnumDescriptor,
    FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
    RepeatedScalarFieldContainer,
)
from google.protobuf.internal.enum_type_wrapper import (
    _EnumTypeWrapper,
)
from google.protobuf.message import (
    Message,
)
from typing import (
    NewType,
)

DESCRIPTOR: FileDescriptor

class _SearchEntityType:
    ValueType = NewType("ValueType", int)
    V: typing_extensions.TypeAlias = ValueType

class _SearchEntityTypeEnumTypeWrapper(
    _EnumTypeWrapper[_SearchEntityType.ValueType], type
):
    DESCRIPTOR: EnumDescriptor
    UNKNOWN: _SearchEntityType.ValueType  # 0
    FORUM_TOPIC: _SearchEntityType.ValueType  # 1
    FORUM_COMMENT: _SearchEntityType.ValueType  # 2
    GAME: _SearchEntityType.ValueType  # 3
    USER: _SearchEntityType.ValueType  # 4

class SearchEntityType(
    _SearchEntityType, metaclass=_SearchEntityTypeEnumTypeWrapper
): ...

UNKNOWN: SearchEntityType.ValueType  # 0
FORUM_TOPIC: SearchEntityType.ValueType  # 1
FORUM_COMMENT: SearchEntityType.ValueType  # 2
GAME: SearchEntityType.ValueType  # 3
USER: SearchEntityType.ValueType  # 4

@typing_extensions.final
class SearchRequest(Message):
    DESCRIPTOR: Descriptor

    QUERY_FIELD_NUMBER: int
    SEARCHACROSS_FIELD_NUMBER: int
    SKIP_FIELD_NUMBER: int
    SIZE_FIELD_NUMBER: int
    query: str
    @property
    def searchAcross(
        self,
    ) -> RepeatedScalarFieldContainer[SearchEntityType.ValueType]: ...
    skip: int
    size: int
    def __init__(
        self,
        *,
        query: str = ...,
        searchAcross: Iterable[SearchEntityType.ValueType] | None = ...,
        skip: int = ...,
        size: int = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "query",
            b"query",
            "searchAcross",
            b"searchAcross",
            "size",
            b"size",
            "skip",
            b"skip",
        ],
    ) -> None: ...

@typing_extensions.final
class SearchResponse(Message):
    DESCRIPTOR: Descriptor

    @typing_extensions.final
    class SearchResultEntity(Message):
        DESCRIPTOR: Descriptor

        ID_FIELD_NUMBER: int
        TYPE_FIELD_NUMBER: int
        FOUNDTITLE_FIELD_NUMBER: int
        ORIGINALTITLE_FIELD_NUMBER: int
        FOUNDTEXT_FIELD_NUMBER: int
        id: str
        type: SearchEntityType.ValueType
        foundTitle: str
        originalTitle: str
        foundText: str
        def __init__(
            self,
            *,
            id: str = ...,
            type: SearchEntityType.ValueType = ...,
            foundTitle: str = ...,
            originalTitle: str = ...,
            foundText: str = ...,
        ) -> None: ...
        def ClearField(
            self,
            field_name: typing_extensions.Literal[
                "foundText",
                b"foundText",
                "foundTitle",
                b"foundTitle",
                "id",
                b"id",
                "originalTitle",
                b"originalTitle",
                "type",
                b"type",
            ],
        ) -> None: ...

    TOTAL_FIELD_NUMBER: int
    ENTITIES_FIELD_NUMBER: int
    total: int
    @property
    def entities(
        self,
    ) -> RepeatedCompositeFieldContainer[SearchResponse.SearchResultEntity]: ...
    def __init__(
        self,
        *,
        total: int = ...,
        entities: Iterable[SearchResponse.SearchResultEntity] | None = ...,
    ) -> None: ...
    def ClearField(
        self,
        field_name: typing_extensions.Literal[
            "entities", b"entities", "total", b"total"
        ],
    ) -> None: ...
